/*
 ***************************************************************************************
 * All rights Reserved, Designed By RTF
 * @Title:  KafkaProducerProperties.java   
 * @Package com.rtf.repair.mq.kafka.producer
 * @Description: kafka 生产者属性   
 * @author: 司福林
 * @date:   2020-10-17 16:34:16   
 * @version V1.0 
 * @Copyright: 2020 RTF. All rights reserved.
 * 注意：本内容仅限于公司内部使用，禁止外泄以及用于其他的商业目
 *  ---------------------------------------------------------------------------------- 
 * 文件修改记录
 *     文件版本：         修改人：             修改原因：
 ***************************************************************************************
 */
package com.rtf.framework.mq.kafka.producer;

import lombok.Data;

/**
 *  
 * @Description: kafka 生产者属性
 * @ClassName:  KafkaProducerProperties
 * @author: 67077
 * @date:   2020-10-17 16:34:16
 * @since:  v1.0
 */
@Data
public class KafkaProducerProperties {

	/** kafka broker地址，多个使用“,” */
	private String servers;

	/** 失败重试次数  */
	private int retries = 1;

	/** 客户端标识，方便问题定位跟踪  */
	private String clientName;

	/** 批量发送大小 ，字节 */
	private int BatchSize = 16384;

	/** 批量发送未达到batchSize 时，延迟提交时间，ms*/
	private int linger = 0;

	/** 单条记录最大字节 */
	private int maxRequestSize = 1024 * 1024;

	/** 最大缓存字节 */
	private long bufferMemory = 32 * 1024 * 1024;

	/** 请求超时时间ms,should be larger than replica.lag.time.max.ms (broker configuration) */
	private int requestTimeout = 30 * 1000;

	/** 防数据丢失 1,0,all,-1 */
	private String acks = "1";

	/** 数据压缩类型 none  gzip  snappy lz4 zstd */
	private String compressionType = "none";

	/** 数据分区算法类 */
	private String partitionerClass = "org.apache.kafka.clients.producer.internals.DefaultPartitioner";

}
